package com.example.ecommercemarketing.dto;

import com.example.ecommercemarketing.enums.ProductCategory;
import lombok.Data;

/**
 * 商品DTO
 *
 * <p>用于传输商品相关的核心信息</p>
 * <p>包含商品基本信息、商家信息、销售数据等</p>
 */
@Data
public class ProductDTO {

    /**
     * 商品唯一标识符
     */
    private Long id;                   // 商品ID

    /**
     * 商品名称
     * <p>商品的展示名称，用于前端显示</p>
     * <p>示例："Apple iPhone 13 Pro Max"</p>
     */
    private String name;               // 商品名称

    /**
     * 商品分类
     * <p>使用ProductCategory枚举表示商品所属大类</p>
     * <p>示例：ProductCategory.ELECTRONICS</p>
     */
    private ProductCategory category;  // 商品大类

    /**
     * 商家唯一标识符
     * <p>关联商品所属商家的ID</p>
     */
    private Long merchantId;           // 商家ID

    /**
     * 商家名称
     * <p>商品所属商家的名称</p>
     */
    private String merchantName;       // 商家名称

    /**
     * 商品销量
     * <p>表示商品的历史累计销售数量</p>
     */
    private Integer salesVolume;       // 销量

    /**
     * 商品好评率
     * <p>取值范围0.0-1.0，表示好评比例</p>
     * <p>示例：0.98 (表示98%好评)</p>
     */
    private Double goodRating;         // 好评率

    /**
     * 商家积分
     * <p>表示商家的信誉积分或等级积分</p>
     * <p>示例：500</p>
     */
    private Integer merchantScore;     // 商家积分

    /**
     * 商品热销地区
     * <p>表示商品销售表现最好的地区</p>
     * <p>示例："北京"</p>
     */
    private String region;             // 热销地区

    /**
     * 是否有运营配置
     * <p>标记商品是否有特殊的运营配置（如活动、推荐位等）</p>
     */
    private boolean hasOperationalConfig; // 是否有运营配置

    /**
     * 是否付费商家
     * <p>标记商家是否为平台付费商家</p>
     */
    private boolean isPaidMerchant;    // 是否付费商家
}